' +
'
更多精彩报道,请下载 极目新闻
' +
'
本文著作权归极目新闻所有,未经授权不得转载。点击查看 版权声明。
' +
'
本文为极目号作者或合作机构在极目新闻发布内容,仅代表该作者或机构观点,不代表极目新闻的观点或立场。
' +
'
报料渠道:拨打24小时新闻热线027-86777777;登录极目新闻“报料”;私信“楚天都市报极目新闻”新浪微博,或关注“楚天都市报极目新闻”官方微信私信报料。
' +
'
';
/* 评论组件 */
var commentStr = '';
return {
/* 页面底部组件 */
footerComponent: {
template: footerStr,
},
/* 页面右侧组件 */
righterComponent: {
template: rightStr,
data(){
return{
startAd: null,
startAdSwiper: null,
}
},
methods:{
/* 获取启动广告(右侧) */
getStartAd(){
var me = this;
$_BASE.requestWithToken("/amc/client/getStartAdHb",{code:$_BASE.NODE_CODE},function(res){
if(res && res.suc == 1) {
me.startAd = res.data;
me.$nextTick(() => {
me.initAdSwiper();
});
}else{
me.startAd = null;
}
},function(err){
});
},
/* 右侧启动广告滚动 */
initAdSwiper(){
var me = this;
me.startAdSwiper = new Swiper ('#startAdSwiper', {
slidesPerView: 1,
loop: true, //循环滚动
autoplay: 4500, //切换的时间间隔
speed: 1000,// 切换速度
freeMode: false,
onClick: function(swiper){
if(me.startAd.adType==1){
var adItem = me.startAd.startPics[swiper.realIndex];
if(adItem.type==1){
if(!!adItem.linkUrl&&adItem.linkUrl.length>0){
window.open(adItem.linkUrl);
}else{
console.log("此广告未设置链接地址");
}
}else{
me.toDetailPage(adItem.resultContent);
}
}else if(me.startAd.adType==2){
var url = me.startAd.startVideos[swiper.realIndex].videoUrl;
window.open(url);
}
},
});
me.startAdSwiper.container[0].onmouseover = function(){
me.startAdSwiper.stopAutoplay();
};
me.startAdSwiper.container[0].onmouseleave = function(){
me.startAdSwiper.startAutoplay();
};
},
/* 右侧启动广告跳转 */
toDetailPage(params){
var me = this;
var url = "";
if (params.contentType == 5) { // 图文
url = $_BASE.AD_URL + "/news_detail?contentType=" + params.contentType + "&contentId=" +params.contentId + "&cId=0";
window.open(url);
} else if (params.contentType == 6) { // 图集
url = $_BASE.HOST_URL + "/detailsAtlas.html?contentType=" + params.contentType + "&contentId=" +params.contentId + "&cId=" +params.id;
window.open(url);
} else if (params.contentType == 7) { // 专题
url = $_BASE.HOST_URL + "/special.html?contentType=" + params.contentType + "&contentId=" +params.contentId + "&cId=" +params.id;
window.open(url);
} else if (params.contentType == 9) { // 视频
url = $_BASE.HOST_URL + "/detailsVideo.html?contentType=" + params.contentType + "&contentId=" +params.contentId + "&cId=" +params.id;
window.open(url);
} else if (params.contentType == 11) { // 音频
url = $_BASE.HOST_URL + "/detailsAudio.html?contentType=" + params.contentType + "&contentId=" +params.contentId + "&cId=" +params.id;
window.open(url);
}else if (params.contentType == 12) { // 外链
if (!!params.linkUrl && params.linkUrl.length > 0) {
window.open(params.linkUrl);
}else{
$_BASE.requestWithToken("/amc/client/getOuterLinkById",{contentId:params.contentId},function(res){
if(res && res.suc == 1) {
window.open(res.data.linkUrl);
}
},function(err){
});
}
}
}
},
created() {
this.getStartAd(); //获取启动广告(右侧)
},
},
/* 登录组件 */
loginComponent:{
template: loginStr,
data(){
return{
isShow: false, // 是否显示登录
mobilePhone: '',
authCode: '',
codeText: '获取验证码',
time: 60,
timePicker: null,
}
},
props: {
show: {
type: Boolean,
default: false,
},
},
watch:{
show:{
handler(newValue,oldValue){
if(!newValue){
this.clearPicker();
}
this.isShow = newValue;
}
}
},
methods:{
/* 发送验证码 */
sendCode(){
var me = this;
if($_BASE.testMobilePhone(me.mobilePhone)){
$("#sendCodeBtn").attr("disabled","true");
me.codeText = '请(' +me.time +')秒后重新获取';
me.timePicker = setInterval(function () {
me.time--;
if(me.time==0){
me.clearPicker();
}else{
me.codeText = '请(' +me.time +')秒后重新获取';
}
}, 1000);
var params = {
mobilephone: me.mobilePhone,
nodeCode: $_BASE.nodeCode,
}
$_BASE.requestWithToken("/amc/client/getAuthCode",params,function(res){
if(res && res.suc == 1) {
alert("发送成功!");
}else{
alert("发送验证码失败,请稍后再试!");
}
},function(err){
alert("发送验证码失败,请稍后再试!");
});
}else{
alert("请输入正确的手机号!");
}
},
/* 结束定时器 */
clearPicker(){
var me = this;
clearInterval(me.timePicker);
me.time = 60;
$("#sendCodeBtn").removeAttr("disabled");
me.codeText = '发送验证码';
},
/* 关闭登录框 */
hideLogin(){
var me = this;
me.$emit("showlogindialog",false);
},
/* 登录 */
login(){
var me = this;
if($_BASE.testMobilePhone(me.mobilePhone)){
var params = {
authType: $_BASE.AUTH_TYPE,
clientId: $_BASE.CLIENT_ID,
clientSecret: $_BASE.CLIENT_SECRET,
phoneCode: me.authCode,
phoneNumber: me.mobilePhone,
scope: "",
};
var p = JSON.stringify(params);
$_BASE.requestWithContentType("/amc/v1/loginByPhone",p,function(res){
if(res.suc==1){
let curTimeStamp = new Date().getTime();
window.localStorage.setItem("accessToken", res.data.accessToken);
window.localStorage.setItem("refreshToken", res.data.refreshToken);
window.localStorage.setItem("expiresIn", res.data.expiresIn);
window.localStorage.setItem("tokenTime", curTimeStamp);
me.getUserInfo(); // 登录之后获取用户信息
}else{
alert(res.message);
}
},function(err){
alert("登录失败,稍后请重试!");
},'post','json');
}else{
alert("请输入正确的手机号!");
}
},
/* 获取用户信息 */
getUserInfo(){
var me = this;
var token = window.localStorage.getItem("accessToken");
let tokenTime = window.localStorage.getItem("tokenTime");
var expiresIn = window.localStorage.getItem("expiresIn");
let time = new Date().getTime();
if (!!token && (time - parseInt(tokenTime) > (parseInt(expiresIn) - 5) * 1000)){
}else{
$_BASE.requestWithToken("/amc/client/getMemberByToken",{},function(res){
if(res.suc==1){
me.hideLogin();
window.localStorage.setItem("userInfo", JSON.stringify(res.data.memberInfo));
me.$emit("loggedin",res.data.memberInfo);
}else{
alert("登录失败,稍后请重试!");
}
},function(res){},null,null,token);
}
}
},
created() {
if(!this.show){
this.clearPicker();
}
this.isShow = this.show;
},
},
/* loading组件 */
loadingComponent:{
template: loadingStr,
},
/* 点赞组件 */
praiseComponent:{
template: praiseStr,
data(){
return{
topCount: 0, // 点赞数
isLiked: false, // 是否已点赞
userInfo: null,
deviceId: null,
}
},
props: {
user: {
type: Object,
default: null,
},
device: {
type: String,
default: null,
},
params: {
type: Object,
default: null,
},
id:{
type: Number,
default: null
},
},
watch: {
user: {
handler(newValue, oldVue) {
this.userInfo = newValue;
this.getThumbsUpStatus();
},
deep: true,
},
device: {
handler(newValue, oldVue) {
this.deviceId = newValue;
},
deep: true,
},
},
methods: {
/* 获取点赞状态 */
getThumbsUpStatus(){
var me = this;
var params = {
contentType: me.params.contentType,
contentId: me.id,
fromFlag: me.params.fromFlag,
};
if (!!me.userInfo) {
params.memberId = me.userInfo.id;
} else {
params.deviceId = me.deviceId;
}
$_BASE.requestWithToken("/amc/client/findUserLikesByContentIdAndMemberOrDeviceId",params,function(res){
if(res && res.suc == 1) {
me.topCount = res.data.topCount;
if(res.data.userLikes == 1){
me.isLiked = true;
}else{
me.isLiked = false;
}
}else{
alert(res.message);
}
},function(err){
});
},
onPraiseClick(){
var me = this;
var params = {
contentType: me.params.contentType,
contentId: me.id,
fromFlag: me.params.fromFlag,
};
if (!!me.userInfo) {
params.memberId = me.userInfo.id;
} else {
params.deviceId = me.deviceId;
}
if(me.isLiked){
$_BASE.requestWithToken("/amc/client/deleteTopDataByContent",params,function(res){
if(res && res.suc == 1) {
me.topCount--;
me.isLiked = false;
}else{
alert(res.message);
}
},function(err){
});
}else{
$_BASE.requestWithToken("/amc/client/addTopDataByContent",params,function(res){
if(res && res.suc == 1) {
me.topCount++;
me.isLiked = true;
}else{
alert(res.message);
}
},function(err){
});
}
}
},
created(){
this.userInfo = this.user;
this.deviceId = this.device;
this.getThumbsUpStatus();
},
},
/* 更多报道组件 */
moreNewsComponent:{
template: moreNewsStr,
data(){
return{
}
},
props:{
source: {
type: String,
default: null,
},
},
},
/* 评论组件 */
commentComponent:{
template: commentStr,
data(){
return{
userInfo: null,
commentParams:{
orderFlag: 0,
pageNo: 0,
pageSize: 10,
parentId: 0,
type: null,
contentId: null,
},
commentList: [],
commentTotal: 0,
commentPage: 0,
commentLoadOver: false,
commentMsg: '',
}
},
props: {
user: {
type: Object,
default: null,
},
params: {
type: Object,
default: null,
},
},
watch: {
user: {
handler(newValue, oldVue) {
this.userInfo = newValue;
},
deep: true,
},
params: {
handler(newValue, oldVue) {
if(Object.prototype.hasOwnProperty.call(newValue, "contentId") && Object.prototype.hasOwnProperty.call(newValue, "type")) {
this.commentParams.pageNo = 0;
this.commentParams.type = newValue.contentType;
this.commentParams.contentId = newValue.contentId;
this.getCommentListByNewsId();
}
},
deep: true,
},
},
methods: {
/* 获取评论 */
getCommentListByNewsId() {
var me = this;
$_BASE.requestWithToken("/amc/client/listCommentsWithChildsByContentIdAndTypeAndParentId",me.commentParams,function(res){
if(res && res.suc == 1) {
if (me.commentParams.pageNo == 0){
me.commentList = res.data.commentList;
}else{
me.commentList = me.commentList.concat(res.data.commentList);
}
me.commentTotal = res.data.totalComment;
me.commentPage = Math.ceil(res.data.totalComment / me.commentParams.pageSize);
if (me.commentParams.pageNo >= me.commentPage - 1) {
me.commentLoadOver = true;
} else {
me.commentLoadOver = false;
}
}else{
alert(res.message);
}
},function(err){
});
},
/* 点击加载更多评论 */
loadMoreComment() {
this.commentParams.pageNo++;
this.getCommentListByNewsId();
},
/* 获取评论回复 */
getCommentReply(item) {
var me = this;
$_BASE.requestWithToken("/amc/client/listCommentsWithChildsByContentIdAndTypeAndParentId",item.replayParams,function(res){
if (res.suc == 1) {
if (item.replayParams.pageNo == 0) {
item.childArray = res.data.commentList;
} else {
item.childArray = item.childArray.concat(res.data.commentList);
}
} else {
alert(res.message);
}
},function(err){
});
},
/* 查看更多回复 */
onClickCommentMoreReply(item) {
if (!!item.replayParams) {
item.replayParams.pageNo++;
this.getCommentReply(item);
} else {
item.replayParams = {
pageNo: 0,
pageSize: 10,
contentId: this.params.contentId,
type: this.params.contentType,
parentId: item.id,
commentId: item.id,
};
this.getCommentReply(item);
}
},
/* 提交评论 */
submitComment(){
var me = this;
if(!!me.userInfo){
if (me.commentMsg.length > 0) {
let params = {
contentType: me.params.contentType,
contentId: me.params.contentId,
memberId: me.userInfo.id,
memberName: me.userInfo.nickName,
deviceId: null,
contentTitle: me.params.title,
contentKeyword: null,
nodeId: null,
contentCode: me.userInfo.memberCode,
nodeCode: $_BASE.NODE_CODE,
type: 1, // 1普通评论 2对主持人发布的内容评论
sourceType: 3,//1:苹果;2:安卓;3web;4:H5
parentId: me.commentParams.parentId,
comment: me.commentMsg,
}
$_BASE.requestWithToken("/amc/client/addCommentData",params,function(res){
if (res.suc == 1) {
alert("评论成功,待审核通过后方可展示!");
me.commentMsg = '';
}
},function (e){
console.log(e.responseText)
});
}else{
alert("请输入评论内容!");
}
}else{
alert("请先登录!");
}
},
/* 显示评论回复输入框 */
showReplay: function(item){
if(!!item.isReplay && item.isReplay){
Vue.set(item, "isReplay", false);
}else{
Vue.set(item, "isReplay", true);
}
},
/* 提交评论回复 */
submitReplay: function(item){
var me = this;
if(!!me.userInfo){
var commText = $("#commText"+item.id).val();
if (commText.length > 0){
let params = {
contentType: me.params.contentType,
contentId: me.params.contentId,
memberId: me.userInfo.id,
memberName: me.userInfo.nickName,
deviceId: null,
contentTitle: me.params.title,
contentKeyword: null,
nodeId: null,
contentCode: me.userInfo.memberCode,
nodeCode: $_BASE.NODE_CODE,
type: 1, // 1普通评论 2对主持人发布的内容评论
sourceType: 3,//1:苹果;2:安卓;3web;4:H5
parentId: item.id,
comment: commText,
}
$_BASE.requestWithToken("/amc/client/addCommentData",params,function(res){
if (res.suc == 1) {
alert("评论成功,待审核通过后方可展示!");
$("#commText"+item.id).val('');
Vue.set(item, "isReplay", false);
}
},function (e){
console.log(e.responseText)
});
}else{
alert("请输入评论内容!");
}
}else{
alert("请先登录!");
}
},
/* 评论/评论回复 点赞 */
onClickCommentPraise: function(event, item) {
let target = event.currentTarget;
let clsArray = target.classList;
if (!clsArray.contains("praised")) {
var params = {
commentId: item.id,
};
$_BASE.requestWithToken("/amc/client/addTopDataComment",params,function(res){
if (res.suc == 1) {
target.classList.add("praised");
item.topCount++;
}
},function(err){
});
}
},
},
created(){
this.userInfo = this.user;
if(!!this.params && Object.prototype.hasOwnProperty.call(this.params, "contentId") && Object.prototype.hasOwnProperty.call(this.params, "contentType")) {
this.commentParams.pageNo = 0;
this.commentParams.type = this.params.contentType;
this.commentParams.contentId = this.params.contentId;
this.getCommentListByNewsId();
}
}
},
}
}());
' + '- ' +
'
' +
'' +
'
' +
' ' +
' ' +
'' +
'' +
'' +
'' +
'' +
'' +
' ' +
'回复 ' +
' ' +
'' +
'' +
'' +
'' +
'' +
' ' +
' ' +
'' +
' ' +
' ' +
' ' +
'
' + '' + '- ' +
'
' +
'' +
'' +
'' +
'' +
' ' +
' ' +
'' +
' ' +
'- ' +
'查看全部{{ item.replyCount }}条回复>' +
'查看更多回复>' +
'
' +
'- ' +
'查看更多回复>' +
'
' +
'
' + '